Major ToDos Technical
Stack Choice
- S3 bucket/Route 53/Cloudfront
- Cloudformation backend only (just have codecommit/deploy overwrite the s3 bucket contents for frontend)
- Go (unsure about ec2 v. lambda)
- Postgres On RDS (no ORM, just database/sql pkg with pg driver)
Analytics
Plausible
A list of all the major tasks for the technical docs
UNfortunately I also have a document "Dev Work Portocols and ToDo --- need to fix this overalp and clarify
- Use chatGPT to create interview questions for each subject area. API Up/down vote for each question. (as well as maybe comments??) As of now I don't think I will ever deliver the content of questions, or rather the idea is that if necessary I can always persist the questions to the backend... but since you will have lots of questions in a single markdown file, each question needs an id. I need the API to know which question the votes are related to. This static approach needs to be thought through, or maybe we just decide to persist everything to the backend when the voting is implemented.
Bookmarks
- Bookmarks.md files
- Download bookmarks, add tags, eventually i need a process to add new boomarks.
- Requirements : This info should be pulled from an api. (lmaybe s3 -> AWS lambda)
Bookmarks Table
- BookmarkID (Primary Key)
- URL
- Text (What I've named it in chrome)
- IsResourceHub (Boolean - These are for the homepage link of sites where there are a ton of articles/tutorials)
- URLType (e.g., Homepage, Article, Video, Interactive Tool)
- IsHomepage (Boolean, based on technical definition or removed if redundant)
- EvaluationStatus (e.g., 'HighValue', 'Evaluated (not high value)', 'Pending')
- High Value will NOT be excluded from the bookmarks page... remmeber bookmarks should be ALL
- I could expand this and maybe give a reason why a link isn't "high value".
- HighValueWriteUpLink Links to the write ups (that have been completed)
- Note: Write ups (in the "Important Resources" section) are only done for bookmarks that are evaluated to be
High Value
- Note: Write ups (in the "Important Resources" section) are only done for bookmarks that are evaluated to be
Tags Table
- TagID (Primary Key)
- TagName
BookmarkTags Junction Table
-
BookmarkID
-
TagID
-
Youtube Playlist links --- oh man I'm not even sure how this is different from the bookmarks... other than the fact That I stored it in a different place... and so yea I can embed other people's videos into mmy site... but is the "bookmarks" file the best place to do this??? Well I suppose maybe a category could be videos... but then I need like an isEmbeddable... because maybe i add a bookmark which is of type video, but that's just a link to a page, and it's not even hosted on youtube or whatever ( so the embed component wouldn't work)
- Short Term:
- Link to Playlist
- Play around with the embedding (maybe use the component from my portfolio site)
- Long Term: Pull via API - directly from YT Playlist... but also maybe backup the video IDs in case my playlists in YT get fucked up
- Short Term:
# C++ Bookmarks
## Resource Hubs
[Conditionally include this section based on `IsResourceHub` status.]
- [CProgramming.com](https://www.cprogramming.com/) - A comprehensive resource for C++ tutorials, code examples, and tips.
## Articles
[Include other resources categorized by URLType or tags.]
- [Understanding Pointers in C++](https://example.com/c++/pointers)
## Videos
- [C++ for Beginners - YouTube Playlist](https://www.youtube.com/playlist?list=...)
## Tools & Interactive Consoles
- [CPP Shell](http://cpp.sh/)
Note that this is a markdown mockup, the real markdown will use mdx components to call the backend for each section and conditionally show each section if it gets bookmarks back from the API. Something more like this.
Anything that is high value
-
Homepage
- Fix Icon
-
Deploy MVP!!!
Optional Before MVP:
- Create more "fun" / analytics style stuff on my homepage
- Use something similar to the showcase page so that people can explore my notes by tag.
After Deploying MVP:
- Build out the "community" aspect of the site. Give a sort view of the common interview questions based on the popularity, and let people upvote/downvote questions. Maybe also enable comments?
Complete: See Tag Protocols.md
- Add tags to Notes, this tagging system already exists in Evernote. Styling does not need to be finalized, but the actual tag names need to be transferred over (but styling should also be easily swappable.. css class names lol)
- Short term: Determine a simple format to transfer these
- Add metadata
- Put tags both in front matter and as individual components, then I can write some utility to make sure they are in sync
- Options for display:
- Use an mdx component
- https://shields.io/
- Add metadata
- Long Term: Swap simple badges for language icons (for the language ones)
- Short term: Determine a simple format to transfer these